package com.mpyy.tool;

import com.alibaba.fastjson.JSON;
import com.mpyy.dao.ToolInter;
import com.mpyy.dao.ToolsInter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * @PackageName:com.mpyy.tool
 * @ClassName:tool
 * @Date:2022-02-23:14:56
 * @Author: Tang Neng
 */
@Component
public class Tool {
    /**
     *  通用的生成单号的方法
     * @Author:tang neng
     * @return
     */
    public String automaticOdd(){
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        String date = df.format(new Date()).// new Date()为获取当前系统时间
                replace(" ","").//去掉空格
                replace("-","").//去掉中划线
                replace(":","");//去掉分号
        return date;
    }

    /**封装了一个集合装JSON格式的方法*/
    public static String hashMapInfo(List paging , List objects){
        HashMap<Object, Object> hashMapInfo = new HashMap<>();
        //对JSON格式进行拼接
        hashMapInfo.put("code",0);
        hashMapInfo.put("msg","");
        hashMapInfo.put("count",paging.size());
        hashMapInfo.put("data",objects);
        return JSON.toJSONString(hashMapInfo);
    }

    /**
     *
     * @param num 查询出来数据的总条数，用于表格分页
     * @param string
     * @return
     */
    public String jsonTransition(int num , String string){
        String tang = "{\"code\":0,\"msg\":\"\",\"count\":"+num+",\"data\":"+string+"}";
        return tang;
    }

    //写一个方法将字符串转化为date类型
    public static Date formatDate(String str){
        //使用SimpleDateFormat类里的构造方法，
        //并定义好Date类格式 (年-月-日 时-分-秒 )yyyy-MM-DD hh:mm:ss该格式就是你输入的日期格式
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-DD");//这里只要年月日
        Date date;
        try {
            //需要处理一下异常
            date = format.parse(str);
            return date ;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //str写的格式不对，就返回null
        return null ;
    }

    /**
     * 自动生成Id方法
     * @param string    数据库主键id id格式必须是前3位字母，后3位数字
     * @param toolInter 这个个是连接数据库接口
     * @return
     */
    public String aotomaticId(String string , ToolInter toolInter){
        String id = toolInter.aotomaticId(string);
        if(null != id) {
            //删除字符串后3位
            String e = id.substring(0, id.length() - 3);
            //获取字符串后3三位
            String aa = id.substring(id.length() - 3);
            //对后三位进行装int类型加1的操作然后转字符串
            String gg = String.format("%0" + 3 + "d", Integer.parseInt(aa) + 1);
            //最后对字符串进行拼接进行返回
            return e + gg;
        }else {
                return string.substring(0,3)+"001";
            }
    }

    public String aotomaticId(String tid , String table , ToolsInter toolInter){

        String id = toolInter.aotomaticId(tid,table);
        if(null != id){
            //删除字符串后3位
            String e = id.substring(0, id.length() - 3);
            //获取字符串后3三位
            String aa = id.substring(id.length() - 3);
            //对后三位进行装int类型加1的操作然后转字符串
            String gg = String.format("%0"+3+"d", Integer.parseInt(aa) + 1);
            //最后对字符串进行拼接进行返回
            return e+gg;
        }else {
            return tid.substring(0,3)+"001";
        }

    }

    public static void main(String[] args) throws ParseException {
//        new Tool().aotomaticId("unitId",)
    }
}
